package cn.yitun.chat.yitunserverimapicore.business.chat.service;

import cn.yitun.chat.yituncommonmessage.result.ResultMessage;
import cn.yitun.chat.yitunservercommonlib.crud.yitun.CrudService;
import cn.yitun.chat.yitunservercommonlib.dataentity.data.base.chat.ChatItem;
import cn.yitun.chat.yitunservercommonlib.dataentity.data.core.chat.GroupChatHistory;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupChatContentDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupChatLogDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.group.GroupChatContentInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupChatContentVo;

import java.util.List;

/**
 * 
 * Date 2019-03-08 13:48:52<br>
 * Description
 *
 * @author yitun<br>
 * @version 1.1
 */
public interface GroupChatHistoryService
		extends CrudService<GroupChatContentDto, GroupChatContentInfo, GroupChatContentVo>{

	/**
	 * 根据记录表id查询用户聊天记录（上翻，下拉方式的）
	 * @param query
	 * @return
	 */
	ResultMessage getListByStartId(GroupChatContentDto query);

	/**
	 * 根据消息id查询用户聊天记录（上翻，下拉方式的）
	 * @param query
	 * @return
	 */
	ResultMessage getListByStartMessageKey(GroupChatContentDto query);

	/**
	 * 聊天记录列表
	 * @param chatQuery
	 * @return
	 */
	ResultMessage queryGroupChatContentList(GroupChatContentDto chatQuery);

	/**
	 * 获取记录历史列表
	 * @param groupChatLogDto
	 * @return
	 */
//	List<GroupChatHistory> queryGroupChatContentList(GroupChatLogDto groupChatLogDto);

	/**
	 * 添加聊天记录历史
	 * @param groupId
	 * @param userId
	 * @param messageId
	 * @param chatItemList
	 */
	void addGroupChatHistory(
			Long groupId,
			Long userId,
			Long messageId,
			List<ChatItem> chatItemList);

	/**
	 * 根据记录获取聊天记录
	 * @param chatQuery
	 * @return
	 */
	ResultMessage queryByContentIds(GroupChatContentDto chatQuery);
}
